'''
嵌套布局：
    1. 嵌套布局是指在一个布局中包含另一个布局。
    2. 嵌套布局的常用方法：
        1. addWidget()：添加控件到布局中。
        2. addLayout()：添加布局到布局中。
        3. addSpacing()：添加间距到布局中。
        4. setAlignment()：设置布局中的控件对齐方式。
        5. setContentsMargins()：设置布局的边距。
        6. setSpacing()：设置布局中控件之间的间距。
        
'''
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QVBoxLayout, QHBoxLayout, QGridLayout, QFormLayout, QLineEdit
import sys
from PyQt5.QtCore import Qt#导入Qt模块,用于设置对齐方式

# 创建一个应用程序对象
app = QApplication(sys.argv)

# 创建一个窗口
window=QWidget()
#设置窗口标题
window.setWindowTitle("窗口布局-嵌套布局")
window.resize(300, 200)

#创建水平布局
layout=QHBoxLayout()
#将布局设置到窗口中
window.setLayout(layout)
#设置布局对齐方式：居中对齐
layout.setAlignment(Qt.AlignCenter)
#创建第一个垂直布局
layout1=QVBoxLayout()
#创建第二个垂直布局
layout2=QVBoxLayout()
#创建第3个垂直布局
layout3=QVBoxLayout()
#创建第四个为表单布局
layout4=QFormLayout()

#将第一个垂直布局添加到水平布局中
layout.addLayout(layout1)
#将第二个垂直布局添加到水平布局中
layout.addLayout(layout2)
#将第三个垂直布局添加到水平布局中
layout.addLayout(layout3)
#将第四个表单布局添加到水平布局中
layout.addLayout(layout4)
#设置第四个垂直布局的对齐方式：居中对齐
layout4.setAlignment(Qt.AlignCenter)

#创建按钮和标签
button1=QPushButton("按钮1")
#将按钮添加到第一个垂直布局中
layout1.addWidget(button1)

#创建按钮和标签
button2=QPushButton("按钮2")
button3=QPushButton("按钮3")
#将两个按钮放到第二个垂直布局中
layout2.addWidget(button2)
layout2.addWidget(button3)

#创建按钮和标签
button4=QPushButton("按钮4")
button5=QPushButton("按钮5")
button6=QPushButton("按钮6")    
#将三个按钮放到第三个垂直布局中
layout3.addWidget(button4)
layout3.addWidget(button5)
layout3.addWidget(button6)

#创建单行文本框
name=QLineEdit()#创建一个单行文本框对象,并传入窗口对象
name.setPlaceholderText("请输入账号")#设置文本框的提示文字
#创建登录按钮
button7=QPushButton("登录",window)#创建一个按钮对象,并传入窗口对象


password=QLineEdit()#创建一个单行文本框对象,并传入窗口对象
password.setPlaceholderText("请输入密码")#设置文本框的提示文字
password.setEchoMode(QLineEdit.PasswordEchoOnEdit)#设置文本框的模式,密码模式,输入时显示,编辑时隐藏
# 创建文本和单行文本框
layout4.addRow("账号",name)
layout4.addRow("密码",password)
layout4.addRow("",button7)#添加一行控件到布局中,第一个控件是按钮

#显示窗口
window.show()
#让应用程序进入消息循环
sys.exit(app.exec_())




